/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.evangelion.core.daoImpl;

import com.evangelion.core.FacturaProveedor;
import com.evangelion.core.bean.Seccione;
import com.evangelion.core.dao.FacturaproveedorDao;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Query;

/**
 *
 * @author Usuario
 */
public class FacturaproveedorDaoImpl extends GenericDaoImpl<Serializable> implements FacturaproveedorDao {

    @Override
    public List<FacturaProveedor> findByFecha(Seccione seccion, Date fechadesde, Date fechahasta, String cifnombre) {
        em = getEntityManager();
        Query q;
        if (fechadesde == null || fechahasta == null) {
            q = em.createQuery("SELECT f FROM FacturaProveedor f WHERE (f.proveedor.nombres LIKE :cifnombre OR f.proveedor.cif LIKE :cifnombre) AND f.seccion=:seccion");
        } else {
            q = em.createQuery("SELECT f FROM FacturaProveedor f WHERE (f.proveedor.nombres LIKE :cifnombre OR f.proveedor.cif LIKE :cifnombre) AND (f.fecha>= :fechadesde AND  f.fecha<=:fechahasta) AND f.seccion=:seccion");
            q.setParameter("fechadesde", fechadesde);
            q.setParameter("fechahasta", fechahasta);
        }
        q.setParameter("cifnombre", "%" + cifnombre + "%");
        q.setParameter("seccion", seccion);

        return q.getResultList();
    }
}
